/**
 * Created by Administrator on 2016/1/27.
 */
var User = require('../models/user');
var userDao =require('../dao/userDao');

module.exports = {
    welcome:function(req,res){
        res.render('index', { title: 'Express' });
    },
    home:function(req,res){
        if(!req.session.user){                     //到达/home路径首先判断是否已经登录
            req.session.error = "请先登录";
            res.redirect("/login");                //未登录则重定向到 /login 路径
        }
        res.render("home",{title:'Home'});         //已登录则渲染home页面
    },
    userInfoGet:function(req,res){
        if(!req.session.user){
            req.session.error = "请先登录";
            res.redirect("/login");
        }
        res.render("userInfo",{
            title:'userInfo',
            name:req.session.user.name
        });
    },
    userInfoPost:function(req,res){
        var User = global.user.getModel('user');
        var password = req.body.password;
        var newPassword = req.body.newPassword;
        var name = req.body.name;
        console.log('password',password);
        User.findOne({name: name},function(err,doc){
            if(err){
                res.send(500);
                req.session.error =  '网络异常错误！';
                console.log(err);
            }else if(doc.password != password){
                req.session.error =  '原密码错误！';
                console.log('原密码错误！');
            }else{
                console.log(doc);
                var conditions = {name : name};
                var update = {$set : {password:newPassword}};
                var options = {upsert : false};
                userDao.updateUser(conditions, update, options,function (result) {
                    res.json(result);
                });
                //res.send(200);
            }
        });
    },
    logout:function(req,res){
        req.session.user = null;
        req.session.error = null;
        res.redirect("/");
    },
    singin:function(req,res){
        if(!req.session.user){                     //到达/users后面的路径首先判断是否已经登录
            req.session.error = "请先登录";
            res.redirect("/login");                //未登录则重定向到 /login 路径
        }
        var url = req._parsedOriginalUrl.path;    //得到get请求中的url的path 例如：“/users/sxyc”
        var str = url.split("/");                 //将url以“/”为分界点将字符串分开成数组[,users,sxyc]
        res.render("ww/"+str[2]);                   //已登录则渲染该页面
    },
    registerGet:function(req,res){
        res.render("register",{title:'User register'});  //到达此路径则渲染register文件，并传出title值供 register.html使用
    },
    registerPost:function(req,res){
        //这里的User就是从model中获取user对象，通过global.dbHandel全局方法（这个方法在app.js中已经实现)
        var User = global.user.getModel('user');
        //console.log(User);
        var uname = req.body.uname;
        var upwd = req.body.upwd;
        User.findOne({name: uname},function(err,doc){   // 同理 /login 路径的处理方式
            if(err){
                res.send(500);
                req.session.error =  '网络异常错误！';
                console.log(err);
            }else if(doc){
                req.session.error = '用户名已存在！';
                res.send(500);
            }else{
                User.create({                             // 创建一组user对象置入model
                    name: uname,
                    password: upwd
                },function(err,doc){
                    if (err) {
                        res.send(500);
                        console.log(err);
                    } else {
                        req.session.error = '用户名创建成功！';
                        res.send(200);
                    }
                });
            }
        });
    },
    loginGet:function(req,res){
        res.render("login",{title:'user login'});      //到达此路径则渲染login文件，并传出title值供 login.html使用
    },
    loginPost:function(req,res){
        var User = global.user.getModel('user');   //这里的User就是从model中获取user对象，通过global.dbHandel全局方法（这个方法在app.js中已经实现)
        var uname = req.body.uname;                    //获取post上来的 data数据中 uname的值
        var upwd = req.body.upwd;                      //获取post上来的 data数据中 uname的值
        User.findOne({name:uname},function(err,doc){   //通过此model以用户名的条件 查询数据库中的匹配信息
            if(err){                                         //错误就返回给原post处（login.html) 状态码为500的错误
                res.send(500);
                console.log(err);
            }else if(!doc){                              //查询不到用户名匹配信息，则用户名不存在
                req.session.error = '用户名不存在';
                res.send(404);                           //    状态码返回404
                //res.redirect("/login");
            }else{
                if(upwd != doc.password){                //查询到匹配用户名的信息，但相应的password属性不匹配
                    req.session.error = "密码错误";
                    res.send(404);
                    //res.redirect("/login");
                }else{                                   //信息匹配成功，则将此对象（匹配到的user) 赋给session.user  并返回成功
                    req.session.user = doc;
                    res.send(200);
                    //res.redirect("/home");
                }
            }
        });
    }
};
